finally无论如何都要执行的部分
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
finally块是用来存放不管有没有异常都得执行的程序。
try {
turnOvenOn();
x.bake();
} catch(BakingException ex) {
ex.printStackTrace();
} finally {
turnOvenOff();
}
- 如果没有finally,你得同时把turnOvenOff()摆在try与catch两处。finally块可以让你把所有重要的清理程序代码集中在一处,而不需要复制两份。
- 如果try块失败了,抛出异常,流裎会马上转移到catch块,当catch块完成时,会执行finally块。当finally完成时就会继续执行其余的部分。
- 如果try块成功,流程会跳过catch块并移动到finally块,当finally完成时就会继续执行其余的部分。
- 如果try或catch块有return指令,finally还是会执行!流程会跳到finally然后再回到return指令。
在线练习
{$ activeFileHint $}